# 识别单张图片，将识别结果输出到output目录的一个文本文件中：文件名.后缀名.txt 

# 导入PaddleOCR
from paddleocr import PaddleOCR
# 导入系统模块
import os

# 初始化 PaddleOCR 模型
# 只需运行一次以下载并加载模型到内存中
ocr = PaddleOCR(use_angle_cls=True, lang="ch")  

# 指定待识别的图片路径
img_path = './files/test.png'

# 使用 PaddleOCR 模型进行文字识别
result = ocr.ocr(img_path, cls=True)

# 将识别结果拼接成一个字符串
text_result = ""
for idx in range(len(result)):
    res = result[idx]
    for line in res:
        text_result += line[1][0] + "\n"

# 获取输入文件名（包含扩展名）
filename, ext = os.path.splitext(os.path.basename(img_path))

# 指定输出目录
output_dir = './output'
# 指定输出文件名 文件名.后缀名.txt
output_filename = os.path.join(output_dir, f'{filename}{ext}.txt')

# 确保输出目录存在，如果不存在则创建
os.makedirs(output_dir, exist_ok=True)

# 将识别结果写入到文本文件中, 指定编码为utf-8
with open(output_filename, 'w', encoding='utf-8') as f:
    f.write(text_result)

print(f"==> OCR识别完成，文件已写入 {output_filename}")
